home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Add-Ons / MPW / MPW dmake 4.0 / BuildProgram < prev    next >
Text File  |  1995-12-05  |  2KB  |  84 lines

  1. #    BuildProgram - build the specified program
  2. #
  3. #    Usage:
  4. #        BuildProgram program [options…] > log
  5. #
  6. #    The BuildProgram script builds the specified program (or target).
  7. #    A simple transcript of the build is written to standard output.
  8. #
  9. #    Make is used to generate the build commands.  If file <program>.make
  10. #    exists it is used as the makefile.    If not, file MakeFile is used.
  11. #
  12. #    The options specified are passed directly to Make, and control the
  13. #    generation of the build commands.
  14. #
  15. #
  16. #    Copyright Apple Computer, Inc. 1987 - 1992
  17. #    All rights reserved.
  18. #
  19. #    Modified for dmake by Matthias Neeracher
  20. #
  21.  
  22. Set Exit 1
  23.  
  24. #    Find the program parameter.
  25.  
  26. Unset program
  27. For i In {"Parameters"}
  28.     If "{i}" !~ /-≈/
  29.         Set program "{i}"
  30.         Break
  31.     End
  32. End
  33. If "{program}" == ""
  34.     Echo "### {0} - Specify a program to build." > Dev:StdErr
  35.     Echo "# Usage - {0} program [options…]" > Dev:StdErr
  36.     Exit 1
  37. End
  38.  
  39. #    Select the makefile.
  40.  
  41. Set makefile `(Files -t TEXT "{program}".mk || ∂
  42.     Files -t TEXT "{program}".make || ∂
  43.     Files -t TEXT makefile.mk || ∂
  44.     Files -t TEXT MakeFile || ∂
  45.     Echo '""') ≥ Dev:Null`
  46. If "{makefile}" == ""
  47.     Echo "### {0} - No makefile exists for {program}." > Dev:StdErr
  48.     Exit 1
  49. Else if "{makefile}" =~ /≈.mk/
  50.     Set Make "dmake -n"
  51.     if "{1}" == "-e"
  52.         set everything -u
  53.         shift
  54.     end
  55. Else
  56.     Set Make "Make"
  57. End
  58.  
  59. #    Run Make, then execute its output.
  60.  
  61. Echo "# `Date -t` ----- Build of {program}."
  62. Echo "# `Date -t` ----- Analyzing dependencies."
  63. Begin
  64.     Echo "Set Echo 1"
  65.     {Make} {Everything} {"Parameters"} -f "{makefile}"
  66. End > "{program}".makeout
  67. Echo "# `Date -t` ----- Executing build commands."
  68. "{program}".makeout
  69. Delete "{program}".makeout
  70. Echo "# `Date -t` ----- Done."
  71. Set type "`files -i -n -x t "{program}" ≥ Dev:Null || Set Status 0`"
  72. Set CaseSensitive True #filetype check for DA must be case sensitive
  73. If "{type}" =~ /≈ APPL/ OR "{type}" =~ /≈ MPST/     # application or tool
  74.     Echo -n ∂t; Quote -n "{program}"; Echo -n " "
  75. Else If "{type}" =~ /≈ DFIL/                        # desk accessory in Suitcase
  76.     Echo -n ∂t
  77.     Quote -n "Font/DA Mover" "{SystemFolder}"System "{program}";
  78.     Echo -n "  # Install DA"
  79. Else If "{type}" =~ /≈ dfil/                        # desk accessory (System 7)
  80.     Echo -n ∂t
  81.     Quote -n Duplicate -y "{program}" "{SystemFolder}Apple Menu Items";
  82.     Echo -n "  # Install DA into Apple Menu"
  83. End
  84.